"""
作者：chenmanlei
日期：2021年09月07日
"""

# 管理多个子图1
#plt.figure()
# 将整个figure分成两行一列，第三个参数表示该图形放在第1个网格
# plt.subplot(2, 1, 1)
# 将整个figure分成两行两列，并将该图形放在第2个网格
# plt.subplot(223)

import matplotlib.pyplot as plt
import numpy as np

plt.figure()
# 定义从-pi到pi之间的数据，平均取64个数据点
x_data = np.linspace(-np.pi, np.pi, 64, endpoint=True)  # ①
# 将整个figure分成两行两列，第三个参数表示该图形放在第1个网格
plt.subplot(2, 2, 1)
# 绘制正弦曲线
plt.plot(x_data, np.sin(x_data))
# 设置右边坐标轴线的颜色
plt.gca().spines['right'].set_color('none')
# 设置顶部坐标轴线的颜色
plt.gca().spines['top'].set_color('none')
# 定义底部坐标轴线的位置（放在0数值处）
plt.gca().spines['bottom'].set_position(('data', 0))
plt.gca().spines['left'].set_position(('data', 0))
plt.title('正弦曲线')

# 将整个figure分成两行两列，并将该图形放在第2个网格
plt.subplot(222)
# 绘制余弦曲线
plt.plot(x_data, np.cos(x_data))
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')
plt.gca().spines['bottom'].set_position(('data', 0))
plt.gca().spines['left'].set_position(('data', 0))
plt.title('余弦曲线')

# 将整个figure分成两行两列，并该图形放在第3个网格
plt.subplot(223)
# 绘制正切曲线
plt.plot(x_data, np.tan(x_data))
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')
plt.gca().spines['bottom'].set_position(('data', 0))
plt.gca().spines['left'].set_position(('data', 0))
plt.title('正切曲线')

plt.show()

# 管理多个子图2
# 管理多个子图2
# import matplotlib.pyplot as plt
# import numpy as np
# import matplotlib.gridspec as gridspec
# plt.figure()
# # 将绘图区域分成2行3列
# gs = gridspec.GridSpec(2, 3)
# # 指定ax1占用第一行（0）整行
# ax1 = plt.subplot(gs[0, :])
# # 指定ax1占用第二行（1）的第一格（第二个参数0代表）
# ax2 = plt.subplot(gs[1, 0])
# # 指定ax1占用第二行（1）的第二、三格（第二个参数0代表）
# ax3 = plt.subplot(gs[1, 1:3])


import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as gridspec

plt.figure()
# 定义从-pi到pi之间的数据，平均取64个数据点
x_data = np.linspace(-np.pi, np.pi, 64, endpoint=True)  # ①

# 将绘图区域分成2行3列
gs = gridspec.GridSpec(2, 3)
# 指定ax1占用第一行（0）整行
ax1 = plt.subplot(gs[0, :])
# 指定ax1占用第二行（1）的第一格（第二个参数0代表）
ax2 = plt.subplot(gs[1, 0])
# 指定ax1占用第二行（1）的第二、三格（第二个参数0代表）
ax3 = plt.subplot(gs[1, 1:3])

# 绘制正弦曲线
ax1.plot(x_data, np.sin(x_data))
ax1.spines['right'].set_color('none')
ax1.spines['top'].set_color('none')
ax1.spines['top'].set_color('none')
ax1.spines['bottom'].set_position(('data', 0))
ax1.spines['left'].set_position(('data', 0))
ax1.set_title('正弦曲线')

# 绘制余弦曲线
ax2.plot(x_data, np.cos(x_data))
ax2.spines['right'].set_color('none')
ax2.spines['top'].set_color('none')
ax2.spines['bottom'].set_position(('data', 0))
ax2.spines['left'].set_position(('data', 0))
ax2.set_title('余弦曲线')

# 绘制正切曲线
ax3.plot(x_data, np.tan(x_data))
ax3.spines['right'].set_color('none')
ax3.spines['top'].set_color('none')
ax3.spines['bottom'].set_position(('data', 0))
ax3.spines['left'].set_position(('data', 0))
ax3.set_title('正切曲线')

plt.show()